Using the Cross Referencer

Introduction
In this chapter, you will learn how to use the Cross Referencer to follow references in your source code.
Basically, there are three different ways of following references:

- Function body cross referencing
- Component analyzing
- Interface cross referencing

When browsing FORTRAN 77 code, only function body cross referencing is possible in Cross Referencer. This is because component analyzing and interface cross referencing are based on data structures not implemented in FORTRAN 77. However, these data structures are implemented in FORTRAN 90. As a result, all three ways of following references can be performed when browsing your FORTRAN 90 code.
Function body cross referencing
With function body cross referencing, you can find out which symbols are referred to by subprograms (subroutines and functions) and module subprograms. You can also find out which subprograms refer to a particular symbol.
To start method body cross referencing, use the Symbol Browser to select a particular subprogram and choose Info > Subprogram Refers-To.... A Cross Referencer appears with cross referencing information for the selected subprogram.
To find out which subprograms refer to a particular symbol, use the Symbol Browser to select the symbol and then choose Info > Symbol Referred-By....
Component analyzing
Modules and derived types can contain components. By doing component analyzing with the Cross Referencer, you can answer questions like "What are the components (variables or parameters) of a module or the components of a derived type displayed to level 5" or "What modules or derived types have INTEGER variables/components?".
To do component analyzing, use the Symbol Browser to select a module or a derived type and choose Info > Symbol Refers-To Components (Since there aren't any modules or derived types in this example, you won't get a result - try this command out with your own examples).
Interface cross referencing
You can do interface cross referencing modules; that is, you can cross reference all symbol types that are part of a module's interface (i.e., return values or dummy argument types). You can also display all types that use another type in their interface. Questions like: "Who returns a CHARACTER type?" or "What are the return and dummy argument types of this module?" can be answered.
To do interface cross referencing, start the Cross Referencer and switch on interface cross referencing by enabling the Interface (PR) check-box in the Filter dialog.